﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BE;
using BL;
using System.Data;

using Mapeo;
using System.Collections;
using AjaxControlToolkit;
using NHibernate;

using MySql.Data;
using MySql.Data.MySqlClient;
using CrystalDecisions.CrystalReports;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.ReportSource;
using CrystalDecisions.Shared;
using System.Diagnostics;
//using CrystalDecisions.Windows;

namespace UI.DireccionAcademica
{
    public partial class frmReportePreActaProfesor : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

            if (!IsPostBack)
            {


                if (Session["nombreProfesor"] != null)
                {
                    lblNombreProfesor.Text = Session["nombreProfesor"].ToString();

                    verCursos();
                }
                else
                {
                    Response.Redirect("~\frmPrincipal.aspx");
                }


            }
        }


        private void verCursos()
        {
            String mensaje;
            try
            {
                string semestre = ddlSemestre.SelectedValue;
                string codigoProfesor = Session["CodigoProfesor"].ToString();
                PreActa_BL obj = new PreActa_BL();
                DataTable dato = new DataTable();
                dato = obj.PreActa_ListadoAsignaturas_xNombre_XSemestre(codigoProfesor, semestre);
                grvAsignaturas.DataSource = dato;
                grvAsignaturas.DataBind();
            }
            catch (Exception ex)
            {
                mensaje = ex.Message;
            }

        }

        protected void btnVer_Click(object sender, EventArgs e)
        {
            verCursos();

        }


        private bool GenerarReportePreActa(String idCurso, String nombreProfeReporte)
        {
            LabelResultados.Text = "";
            try
            {
                ReporteActaPreliminal2014 reporte = new ReporteActaPreliminal2014();

                ReportePreActas_BL rnc = new ReportePreActas_BL();


                DataTable data = rnc.ListaPreActa(idCurso);

                if (data.Rows.Count == 0)
                {
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "script", "alert('" + "No se encontraron registros :" + "" + "');", true);
                    return false;
                }



                reporte.SetDataSource(data);



                reporte.DataDefinition.FormulaFields["Docente"].Text = "'" + nombreProfeReporte + "'";


                ExportOptions CrExportOptions;
                DiskFileDestinationOptions CrDiskFileDestinationOptions = new DiskFileDestinationOptions();
                PdfRtfWordFormatOptions CrFormatTypeOptions = new PdfRtfWordFormatOptions();
                String rutaarchivo = System.IO.Path.GetTempFileName() + "PreActa2014-" + Guid.NewGuid() + ".pdf";
                CrDiskFileDestinationOptions.DiskFileName = rutaarchivo;

                Session["RutaReporte"] = rutaarchivo;
                Session["Reporte"] = reporte;


                CrExportOptions = reporte.ExportOptions;
                {
                    CrExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
                    CrExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
                    CrExportOptions.DestinationOptions = CrDiskFileDestinationOptions;

                    CrExportOptions.FormatOptions = CrFormatTypeOptions;

                }

                reporte.Export();

                reporte.Close();

                //Process.Start(rutaarchivo);

                return true;
            }
            catch (Exception ex)
            {
                LabelResultados.Text = ex.Message;
                return false;
            }
        }

        private bool GenerarReportePreActa2(String idCurso, String nombreProfeReporte)
        {
            try
            {
                ReporteActaPreliminal2014 reporte = new ReporteActaPreliminal2014();

                ReportePreActas_BL rnc = new ReportePreActas_BL();


                DataTable data = rnc.ListaPreActa(idCurso);

                if (data.Rows.Count == 0)
                {
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "script", "alert('" + "No se encontraron registros :" + "" + "');", true);
                    return false;
                }



                reporte.SetDataSource(data);



                reporte.DataDefinition.FormulaFields["Docente"].Text = "'" + nombreProfeReporte + "'";


                ExportOptions CrExportOptions;
                DiskFileDestinationOptions CrDiskFileDestinationOptions = new DiskFileDestinationOptions();
                PdfRtfWordFormatOptions CrFormatTypeOptions = new PdfRtfWordFormatOptions();
                String rutaarchivo = System.IO.Path.GetTempFileName() + "PreActa2014-" + Guid.NewGuid() + ".pdf";
                CrDiskFileDestinationOptions.DiskFileName = rutaarchivo;

                Session["RutaReporte"] = rutaarchivo;
                Session["Reporte"] = reporte;


                CrExportOptions = reporte.ExportOptions;
                {
                    CrExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
                    CrExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
                    CrExportOptions.DestinationOptions = CrDiskFileDestinationOptions;

                    CrExportOptions.FormatOptions = CrFormatTypeOptions;

                }

                reporte.Export();

                reporte.Close();


               // Process.Start(rutaarchivo);

                return true;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        protected void grvAsignaturas_SelectedIndexChanged(object sender, EventArgs e)
        {
            Session["nombreProfesorReporte"] = HttpUtility.HtmlDecode(grvAsignaturas.SelectedRow.Cells[0].Text);
            Session["idCurso"] = HttpUtility.HtmlDecode(grvAsignaturas.SelectedRow.Cells[2].Text);
            string nombreProfeReporte = Session["nombreProfesor"].ToString();
            string idCurso = Session["idCurso"].ToString();


            if (GenerarReportePreActa(idCurso, nombreProfeReporte))
            {



                string script = "AbrirVentana('FrmInformeOrdenMeritoPdf.aspx')";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "popup", script, true);
            };



        }

        protected void ddlSemestre_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                string semes = ddlSemestre.SelectedValue;
                string semestre = semes.Substring(2, 3);
                string nombreProfesor = Session["nombreProfesor"].ToString();
                PreActa_BL obj = new PreActa_BL();
                DataTable dato = new DataTable();
                dato = obj.PreActa_ListadoAsignaturas_xNombre_XSemestre(nombreProfesor, semestre);
                grvAsignaturas.DataSource = dato;
                grvAsignaturas.DataBind();
            }
            catch (Exception)
            {
                throw;
            }
        }

        protected void btnAtras_Click(object sender, ImageClickEventArgs e)
        {
            Response.Redirect("frmReportePreActa.aspx");
        }

        protected void grvAsignaturas_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GridView gv = (GridView)sender;
            gv.PageIndex = e.NewPageIndex;
            grvAsignaturas.PageIndex = e.NewPageIndex;

            verCursos();
        }

        //Int32 contador = 0;
        //protected void Button1_Click(object sender, EventArgs e)
        //{
        //    try
        //    {
        //        int contador = Convert.ToInt32(txtPrueba.Text);
                
        //        for (int i = 0; i < contador; i++)
        //        {
        //            contador += 1;
        //            if (GenerarReportePreActa2("1350", "PROFESOR DE PERUBA"))
        //            {
        //                //string script = "AbrirVentana('FrmInformeOrdenMeritoPdf.aspx')";
        //                //ScriptManager.RegisterStartupScript(this, typeof(Page), "popup", script, true);
        //            }
        //            else {

        //                String error = "llego aca en regiustro" + contador.ToString();
        //            };
        //        }


        //    }
        //    catch (Exception ex)
        //    {
        //        String error = "llego aca en regiustro" + contador.ToString();
        //        throw ex;
        //    }
        //}




    }
}